const PrerenderSPAPlugin = require('prerender-spa-plugin');
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require('path');

const routes = "/".split(",");
//const routes = "/,/loader,/dev,/ops,/test,/dev/code".split(",");

var plugins = [];
if (routes.length) {
    // plugins.push(
    //     new PrerenderSPAPlugin({
    //         // 生成文件的路径，也可以与webpakc打包的一致。
    //         // 下面这句话非常重要！！！
    //         // 这个目录只能有一级，如果目录层次大于一级，在生成的时候不会有任何错误提示，在预渲染的时候只会卡着不动。
    //         staticDir: path.join(__dirname, 'dist'),
    //         // 对应自己的路由文件，比如a有参数，就需要写成 /a/param1。
    //         routes: routes,
    //         // 这个很重要，如果没有配置这段，也不会进行预编译
    //         renderer: new Renderer({
    //             inject: {},
    //             headless: false,
    //             // 在 main.js 中 document.dispatchEvent(new Event('render-event'))，两者的事件名称要对应上。
    //             renderAfterDocumentEvent: 'render-event'
    //         })
    //     }),
    // );
}

module.exports = {
    publicPath: '/', //虚拟目录

    lintOnSave: false,
    productionSourceMap: false,

    configureWebpack: {
        externals: {
            'vue': 'Vue',
            "element-ui": "ELEMENT",
            // jquery: "jQuery"
        },

        performance: {
            hints: 'warning',
            //入口起点的最大体积 整数类型（以字节为单位）
            maxEntrypointSize: 50000000,
            //生成文件的最大体积 整数类型（以字节为单位 300k）
            maxAssetSize: 30000000,
            //只给出 js 文件的性能提示
            assetFilter: function (assetFilename) {
                return assetFilename.endsWith('.js');
            }
        },

        plugins: plugins
    }
}
